################################################################################
# Makefile generico
################################################################################

CC = gcc
LD = gcc
CFLAGS = -O2 -Wall -ansi -c -std=c99
LDFLAGS = -O2 -std=c99 -o

ifeq ($(OS),Windows_NT)
	OS = Windows
endif

ifeq ($(OS),Windows)
	EXE = .exe
	DEL = del
else	
	EXE =
	DEL = rm -f
endif

################################################################################
# 
# Cartelle dei due progetti e delle librerie
# 
################################################################################
LZSS = ./LZSS
SHANNON_FANO = ./SFC
LIBS = ./libs

################################################################################
# LZSS_TYPE indica il tipo di codifica che si utilizza per scrivere sul file di 
# output la coppia offset e length.
#
# lzss          - codifica standard, 16 bit per l'offset e 4 per length
# lzss_variable - cofifica variabile, impostabile attraverso il file lzss.h
#
################################################################################
#LZSS_TYPE = lzss
LZSS_TYPE = lzss_variable

################################################################################
# MAIN indica il file da compilare per la parte che chiama la codifica o la
# decodifica (nel caso si vorrebbe un'altra implementazione)
#
################################################################################
#MAIN = main
MAIN = main

all:		    clean SoffiaAria$(EXE)
		
	
SoffiaAria$(EXE):   $(MAIN).c $(LZSS)/$(LZSS_TYPE).c $(LZSS)/benchmark.c $(SHANNON_FANO)/shannon_fano.c $(LIBS)/bitfile.c
		    $(LD) $^ $(LDFLAGS) $@ -lm

clean:
		    $(DEL) *.o
		    $(DEL) SoffiaAria$(EXE)